Mechanical shock mitigation for data storage

ABSTRACT

A device adapted to capture surveillance data that includes a disk and a Non-Volatile Solid-State Memory (NVSM). The surveillance data is received in a buffer of the device for storage on the disk, and an input is received indicating a level of mechanical shock. It is determined whether the input indicates the level of mechanical shock exceeds a first threshold indicative of an impact. If the input indicates the level of mechanical shock exceeds the first threshold, the surveillance data is stored in the NVSM from the buffer and a status is determined for storing data on the disk.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a divisional application of allowed U.S. patentapplication Ser. No. 14/671,434 (Atty. Docket No. T7882), filed on Mar.27, 2015, and entitled “MECHANICAL SHOCK MITIGATION FOR DATA STORAGE”,which is hereby incorporated by reference in its entirety. Thisapplication and U.S. patent application Ser. No. 14/671,434 claim thebenefit of U.S. Provisional Patent Application No. 62/076,081 (Atty.Docket No. T7882.P), filed on Nov. 6, 2014, and entitled “SOLID-STATEHYBRID DRIVE (SSHD) HANDLING OF CATASTROPHIC ACCIDENTS IN AUTOMOTIVESURVEILLANCE APPLICATIONS”, which is hereby incorporated by reference inits entirety.

BACKGROUND

Data Storage Devices (DSDs) are often used to record data onto or toreproduce data from a storage media. One type of storage media includesa rotating magnetic disk where a magnetic head of the DSD can read andwrite data in tracks on a surface of the disk, such as in a Hard DiskDrive (HDD). Another type of storage media can include a solid-statememory where cells are charged to store data. Recently, Solid-StateHybrid Drives (SSHDs) have been introduced that can include both arotating magnetic disk and a solid-state memory for non-volatilelystoring data.

A large impact to a DSD including a disk can cause problems in readingor writing data on the disk, and may even render the disk unusable foraccessing data from the disk. This can cause problems especially whenthe disk is used to store surveillance or vehicle data where the datarecorded around the time of a large impact can be important. Forexample, such data may be used to determine a cause of an accident or inthe investigation of a crime.

BRIEF DESCRIPTION OF THE DRAWINGS

The features and advantages of the embodiments of the present disclosurewill become more apparent from the detailed description set forth belowwhen taken in conjunction with the drawings. The drawings and theassociated descriptions are provided to illustrate embodiments of thedisclosure and not to limit the scope of what is claimed.

FIG. 1 is a block diagram depicting a vehicle with a device forcapturing vehicle data according to an embodiment.

FIG. 2 is a diagram providing more detail on the device of FIG. 1according to an embodiment.

FIG. 3 is a circuit diagram for a controller of the device of FIGS. 1and 2 according to an embodiment.

FIG. 4 is a flowchart for a data storage process that considers a levelof mechanical shock according to an embodiment.

FIG. 5 is a flowchart for another data storage process that considers alevel of mechanical shock according to an embodiment.

FIG. 6 is a diagram depicting a buffer with multiple portions accordingto an embodiment.

FIG. 7 is a diagram depicting two reserved portions and a circularbuffer of a Non-Volatile Solid-State Memory (NVSM) according to anembodiment.

FIG. 8 is a diagram depicting more than two reserved portions and acircular buffer of an NVSM according to an embodiment.

DETAILED DESCRIPTION

In the following detailed description, numerous specific details are setforth to provide a full understanding of the present disclosure. It willbe apparent, however, to one of ordinary skill in the art that thevarious embodiments disclosed may be practiced without some of thesespecific details. In other instances, well-known structures andtechniques have not been shown in detail to avoid unnecessarilyobscuring the various embodiments.

System Overview

FIG. 1 is a block diagram depicting vehicle 100 with device 107 forcapturing vehicle data according to an embodiment. Although FIG. 1depicts vehicle 100 as an automobile, device 107 can be used indifferent vehicles such as, for example, a truck, airplane, helicopter,boat, bus, train, or motorcycle. In yet other embodiments, device 107can be a surveillance system located in, for example, a business, home,warehouse, institution, or a public place.

In the example of FIG. 1, device 107 includes camera 104, hostsurveillance unit 103, and Data Storage Device (DSD) 106. In the variousembodiments described below, the DSD 106 can be configured to preservesurveillance or vehicle data that may be critical to accidentinvestigation.

Host surveillance unit 103 is in communication with camera 104 and DSD106. In addition, host surveillance unit 103 is also in communicationwith Electronic Control Unit (ECU) 101, which in turn, is incommunication with impact sensor 102. ECU 101 provides electroniccontrol of vehicle 100 and can send vehicle data to host surveillanceunit 103 for storage in DSD 106. Example of vehicle data provided by ECU101 can include, for example, information concerning an impact detectedby sensor 102, a speed or acceleration of vehicle 100, seat belt orairbag indicators, or a braking or steering history of vehicle 100. Thevehicle data can also come from camera 104, which may provide video orother image data to host surveillance unit 103 as vehicle data forstorage in DSD 106.

FIG. 2 is a diagram providing more detail on device 107 according to anembodiment. In the embodiment of FIG. 2, DSD 106 includes Non-VolatileMemory (NVM) in the form of rotating magnetic disk 150 and Non-VolatileSolid-State Memory (NVSM) 128. In this regard, DSD 106 can be considereda Solid-State Hybrid Drive (SSHD) since it includes both solid-state anddisk media. In other embodiments, each of disk 150 or NVSM 128 may bereplaced by multiple Hard Disk Drives (HDDs) or multiple Solid-StateDrives (SSDs), respectively, so that DSD 106 includes pools of HDDsand/or SSDs. Other embodiments may also include different componentsthan those shown in FIG. 2.

DSD 106 includes controller 120 which includes circuitry such as one ormore processors for executing instructions and can include amicrocontroller, a DSP, an Application-Specific Integrated Circuit(ASIC), a Field-Programmable Gate Array (FPGA), hard-wired logic, analogcontroller and/or a combination thereof. In one implementation,controller 120 can include a System on a Chip (SoC).

Host interface 126 is configured to interface DSD 106 with hostsurveillance unit 103 and may interface according to a standard such as,for example, Serial Advanced Technology Attachment (SATA), PCI express(PCIe), Small Computer System Interface (SCSI), or Serial Attached SCSI(SAS). As will be appreciated by those of ordinary skill in the art,host interface 126 can be included as part of controller 120. AlthoughFIG. 1 depicts the co-location of host surveillance unit 103 and DSD106, in other embodiments the two need not be physically co-located. Insuch embodiments, DSD 106 may be located remotely from host surveillanceunit 103 and connected to host surveillance unit 103 via a networkinterface.

In the example of FIG. 2, disk 150 is rotated by a spindle motor (notshown) and head 136 is positioned to read and write data on the surfaceof disk 150. In more detail, head 136 is connected to the distal end ofactuator 130 which is rotated by Voice Coil Motor (VCM) 132 to positionhead 136 over disk 150 to read or write data in tracks 152 on disk 150.

As shown in FIG. 2, disk 150 includes a number of radially spaced,concentric tracks 152 for storing data. In some implementations, tracks152 may be written using Shingled Magnetic Recording (SMR) such thattracks 152 overlap. In other implementations, tracks 152 may not overlapor disk 150 may include both overlapping and non-overlapping tracks 152.Disk 150 also includes servo wedges (not shown) along tracks 152 thatare used to control the position of head 136 in relation to disk 150.Controller 120 uses the servo wedges to control the position of head 136with VCM control signal 34 and controls the rotation of disk 150 with SMcontrol signal 38.

DSD 106 also includes NVSM 128 for storing data in an NVM. While thedescription herein refers to solid-state memory generally, it isunderstood that solid-state memory may comprise one or more of varioustypes of memory devices such as flash integrated circuits, ChalcogenideRAM (C-RAM), Phase Change Memory (PC-RAM or PRAM), ProgrammableMetallization Cell RAM (PMC-RAM or PMCm), Ovonic Unified Memory (OUM),Resistive RAM (RRAM), NAND memory (e.g., single-level cell (SLC) memory,multi-level cell (MLC) memory, or any combination thereof), NOR memory,EEPROM, Ferroelectric Memory (FeRAM), Magnetoresistive RAM (MRAM), otherdiscrete NVM (non-volatile memory) chips, or any combination thereof.

In FIG. 2, DSD 106 also includes memory 140, which can include, forexample, a Dynamic Random Access Memory (DRAM). Memory 140 can be usedby DSD 106 to temporarily store data. Data stored in memory 140 caninclude data read from NVM such as disk 150 or NVSM 128, or data to bestored in NVM. As shown in FIG. 2, memory 140 also stores instructionsloaded from DSD firmware 28, which are executed by controller 120 tocontrol operation of DSD 106. Memory 140 may also store data used inexecuting DSD firmware 28. As described in more detail below, memory 140includes buffer 30 for storing vehicle data before writing the vehicledata on disk 150.

DSD 106 also includes sensor 122 which provides input 20 to controller120 indicating a level of mechanical shock to device 107. Sensor 122 caninclude, for example, an accelerometer such as a piezoelectricacceleration transducer or other type of shock sensor. In otherembodiments, sensor 122 may be external to DSD 106. In one suchembodiment, host surveillance unit 103 may include a sensor fordetecting a level of mechanical shock and may provide DSD 106 with aninput indicating a level of mechanical shock or a high shock event. Inyet other embodiments, device 107 may receive an input from ECU 101indicating a level of mechanical shock, a shock event, or an impactdetected by sensor 102.

In the example of FIG. 2, host surveillance unit 103 is shown asinterfacing with ECU 101 and camera 104 which allows host surveillanceunit 103 to collect vehicle data that can be stored in DSD 106 via hostinterface 126. In addition, host surveillance unit 103 communicates withremote storage device 109 via network 105. This can allow hostsurveillance unit 103 to send vehicle data stored in DSD 106 to remotestorage device 109. Network 105 can include, for example, a local orwide area network, or the Internet. In an embodiment, where device 107is not located in a vehicle, host surveillance unit 103 can retrievesurveillance data from DSD 106 to send to remote storage device 109.

Data Preservation

During normal operation, host interface 126 receives host read and writecommands from host surveillance unit 103 for reading and writing vehicleor surveillance data in NVM of DSD 106. For data to be written on disk150, controller 120 stores the vehicle or surveillance data in buffer 30and a read/write channel (not shown) of controller 120 may encode thebuffered data into write signal 32 which is provided to head 136 formagnetically writing data on disk 150. Controller 120 can also provideVCM control signal 34 to VCM 132 to position head 136 over a particulartrack 152 for writing the data. In one embodiment, due to their relativecosts, the storage capacity of disk 150 may be much larger than the NVSM128, and as such adapted to store a high volume of surveillance orvehicle data that may be continuously generated. As such, surveillanceor vehicle data such as video, audio data, etc. may be continuouslywritten to the disk 150.

In response to a read command for data stored on disk 150, controller120 positions head 136 over a particular track 152. Controller 120controls head 136 to magnetically read data stored in the track and tosend the read data as read signal 32. A read/write channel of controller120 can then decode and buffer the data in memory 140 for transmissionto host surveillance unit 103 via host interface 126.

For data to be stored in NVSM 128, controller 120 receives data fromhost interface 126 and may buffer the data in memory 140. In oneimplementation, the data is then encoded into charge values for chargingcells (not shown) of NVSM 128 to store the data.

In response to a read command for data stored in NVSM 128, controller120 in one implementation reads current values for cells in NVSM 128 anddecodes the current values into data that can be transferred to hostsurveillance unit 103 via host interface 126.

While disk 150 may accommodate a high volume of surveillance or vehicledata that may be continuously generated, in the event of a high level ofmechanical shock to device 107 (such as the case of an accident), disk150 is generally more susceptible than NVSM 128 to becoming inaccessibledue to the moving parts required for operation of disk 150. For example,an impact to device 107 may cause head 136 to contact disk 150 such thathead 136 no longer works properly or that the surface of disk 150 can nolonger store data. In another example, an impact to device 107 may causeloose particles to accumulate on a surface of disk 150 such that it canno longer reliably access data.

The processes discussed below therefore attempt to preserve vehicle orsurveillance data that would otherwise be stored on disk 150 in theevent of a high level of mechanical shock. In one implementation, ifinput 20 from sensor 122 indicates a high level of mechanical shock,vehicle or surveillance data stored in buffer 30 for storage on disk 150can instead be stored in NVSM 128. In this way, data that would havebeen written to disk 150 is diverted to NVSM 128 where it has a betterchance of being accessible later. Such vehicle or surveillance datastored in buffer 30 may include important information concerning thecause of the high level of mechanical shock given its temporal proximityto the event. In this regard, the data stored in buffer 30 can includedata captured prior to an event causing the high level of mechanicalshock.

For example, in the case where the shock is caused by an accident, thevehicle or surveillance data at or around the time of impact may becritical in determining the cause of the accident. Such critical data isdiverted to the NVSM 128, which as discussed above, has a better shocktolerance. This scheme of diversion upon shock detection ensures thatdisk 150 can be fully utilized to save the large volume of continuouslygenerated surveillance or vehicle data while NVSM 128, likely smaller incapacity, is specifically utilized to provide an enhanced location forpreserving data potentially critical to accident investigation,especially in the case where disk 150 is damaged by the accident. Inaddition to the diversion of data upon shock, when input 20 from sensor122 indicates a high level of mechanical shock, a status for storingvehicle or surveillance data on disk 150 can be determined. In oneembodiment, the status determination ensures the disk is checked to seewhether it has been damaged or rendered inoperable in some way by theshock. This provides a way for the DSD 106 to determine whether it canresume saving data into the disk 150.

In another embodiment, NVSM 128 may be used to preserve other importantdata based on an input received by device 107. In one example, ECU 101may provide an input to host surveillance unit 103 based on an impactdetected by sensor 102. Host surveillance unit 103 may in turn commandDSD 106 to store a copy of the vehicle data in buffer 30 in NVSM 128 asa backup since such data may be important. This backup can prove usefulin cases where the impact detected by sensor 102 is not large enough totrigger the diversion of vehicle data from buffer 30 to NVSM 128. Onesuch example might include vehicle 100 hitting a pedestrian.

FIG. 3 is a circuit diagram depicting circuitry of controller 120according to an embodiment. Other implementations of controller 120 mayuse a different arrangement of circuitry. As shown in the exampleimplementation of FIG. 3, input 20 is received by controller 120 atterminals SHK1 n and SHK1 p, and is amplified by gain K0 before beingsubtracted by a processed feedback signal. The subtracted signal isamplified by gain K1 before passing through a series of low pass filtersLPF1, LPF2, and LPF3 to yield first shock signal 22.

First shock signal 22 is sampled by high shock Analog to DigitalConverter (ADC) multiplexer (MUX) 40 so that controller 120 candetermine whether input 20 indicates a level of mechanical shockexceeding a first threshold. If so, controller 120 determines that therehas been a high shock event or impact to device 107.

In the example of FIG. 3, first shock signal 22 is further processedinto second shock signal 24 that is used by controller 120 to determinewhether input 20 indicates that the level of mechanical shockcorresponds to a lower level of mechanical shock, such as a vibration ora smaller shock to device 107. In more detail, first shock signal 22 issubtracted by another processed feedback signal before being amplifiedby shock signal amplifier 133 with gain K2. Second shock signal 24 isthen sampled by shock ADC MUX 43 so that controller 120 can determinewhether input 20 indicates a level of mechanical shock exceeding asecond threshold that corresponds to less mechanical shock than thefirst threshold. One or more voltage window comparators can also be usedto compare shock levels over a period of time by comparing second shocksignal 24 to previous instances of second shock signal 24.

By using first shock signal 22 before it is amplified by shock signalamplifier 133, it is ordinarily possible to better detect a high shockevent. In particular, conventional DSDs may use a high gain (e.g., K2)to better detect smaller shock levels with, for example, second shocksignal 24. However, second shock signal 24 may saturate at a relativelylow level (e.g., at a relatively low acceleration) which can preventcontroller 120 from differentiating between high shock events (e.g., acollision of vehicle 100) and low shock events (e.g., vehicle 100driving over a pothole).

Example Data Storage Processes

FIG. 4 is a flowchart for a data storage process that can be performedby controller 120 executing DSD firmware 28 according to an embodiment.In block 402, surveillance data is received in buffer 30 for storage ondisk 150. The surveillance data may come from host surveillance unit 103and include data such as image or video data from camera 104, or vehicledata from ECU 101 such as information concerning an impact detected bysensor 102, a speed or acceleration of vehicle 100, seat belt or airbagindicators, or a braking or steering history for vehicle 100.

In block 404, controller 120 receives input 20 indicating a level ofmechanical shock. Circuitry of controller 120, such as the examplecircuitry of FIG. 3, can then process input 20 into first shock signal22. In some implementations, input 20 may come from sensor 122 of DSD106. In other implementations, input 20 can come from a sensor outsideof DSD 106 or outside of device 107.

In block 406, controller 120 determines whether input 20 indicates alevel of mechanical shock that exceeds a first threshold that indicatesan impact to device 107. If not, the process returns to block 402 tocontinue to receive surveillance data into buffer 30 for storage on disk150. On the other hand, if input 20 indicates a level of mechanicalshock exceeding the first threshold, controller 120 in block 406 storessurveillance data from buffer 30 in NVSM 128. As noted above, NVSM 128is generally better able to withstand high levels of mechanical shockand continue operation as compared to disk 150. Storing surveillancedata in NVSM after a high shock event therefore serves as a protectivemeasure to help ensure that the data is safely stored and will beavailable for later retrieval.

For its part, buffer 30 allows for a time delay before storing thesurveillance data on disk 150 so that the surveillance data can bediverted to NVSM 128 in the event of a high shock event. FIG. 6 providesan example diagram of buffer 30 in memory 140. As shown in FIG. 6,buffer 30 includes multiple portions with first portion 40 up to an Mthportion 42. In one implementation, buffer 30 includes first portion 40and a second portion so that surveillance data can be received intofirst portion 40 while storing surveillance data on disk 150 that waspreviously received in the second portion. Additional portions of buffer30 can be used to further delay storage of surveillance data on disk150. Buffer 30 and the portions of buffer 30 can be sized to provide aparticular amount of time delay in recording data preceding, during, orfollowing a high level of mechanical shock.

Returning to the process of FIG. 4, controller 120 in block 408 storessurveillance data from buffer 30 in NVSM 128 if it is determined inblock 406 that input 20 indicates a level of mechanical shock exceedingthe first threshold. In block 410, controller 120 determines a statusfor storing surveillance data on disk 150. This can include, forexample, performing a diagnostic test on disk 150 such as attempting toperform a test write and a test read on disk 150.

In other embodiments, the process of FIG. 4 could be applied to a devicefor capturing vehicle data rather than surveillance data. As notedabove, such a surveillance system can be located in, for example, avehicle.

FIG. 5 is a flowchart for another data storage process that can beperformed by controller 120 executing DSD firmware 28 according to anembodiment. Although the process of FIG. 5 is described in terms ofsurveillance data, other embodiments could be applied to vehicle datarelated to a vehicle.

In block 502 of FIG. 5, surveillance data is received in buffer 30 forstorage on disk 150. In block 504, controller 120 determines whether amechanical shock was detected. This can be accomplished by receiving aninput from sensor 122 or from host surveillance unit 103 or ECU 101indicating a mechanical shock. If no shock event is detected in block504, the process returns to block 502 to continue to receivesurveillance data in buffer 30 for storage on disk 150.

If a shock is detected in block 504, first shock signal 22 is sampled bycontroller 120 in block 506. In block 508, controller 120 determineswhether first shock signal 22 exceeds a first threshold indicating animpact such as to vehicle 100, device 107, and/or DSD 106. If firstshock signal 22 does not exceed the first threshold in block 508, theprocess returns to block 502 to receive surveillance data in buffer 30for continued storage on disk 150.

On the other hand, if first shock signal 22 exceeds the first thresholdin block 508, controller 120 in block 510 stores surveillance data frombuffer 30 in a first portion of NVSM 128 reserved for storingsurveillance data. Since the surveillance data leading up to an impactand immediately following the impact can often be important indetermining the cause of the impact, NVSM 128 can include portionsreserved for storing such surveillance data.

FIG. 7 is an example diagram of NVSM 128 with two reserved portions anda circular buffer according to an embodiment. As shown in FIG. 7, NVSM128 includes first portion 44, second portion 46, and circular buffer48. First portion 44 can store a predetermined amount of surveillancedata from buffer 30 upon determining that input 20 indicates the levelof mechanical shock exceeds the first threshold. First portion 44 maytherefore be sized to correspond to a portion of buffer 30 such asbuffer portion 40.

Second portion 46 of NVSM 128 can store a predetermined amount ofsurveillance data received after determining that input 20 indicates thelevel of mechanical shock exceeds the first threshold. The surveillancedata received after an impact may also be important in recordingsubsequent impacts that follow the first impact. For example, manyaccidents involve a series of impacts, and as such data around the timeof each impact may have its critical significance. Second portion 46 maybe sized to store surveillance data for a certain amount of timefollowing a first impact at a particular data rate for receiving thesurveillance data from host surveillance unit 103.

Circular buffer 48 of NVSM 128 can be used by controller 120 to recorddata after first portion 44 and second portion 46 have been filled.Since the capacity of NVSM 128 is generally limited, circular buffer 48allows for surveillance data to continue to be recorded following one ormore impacts. Once circular buffer 48 becomes full, and therefore NVSM128, new surveillance data can overwrite previously recordedsurveillance data stored in circular buffer 48. In this way, it isordinarily possible to preserve surveillance data closer in time to thehigh level of mechanical shock in first portion 44 and second portion46, while still storing new surveillance data that is received after thehigh level of mechanical shock.

Other implementations of NVSM 128 may be arranged differently. In thisregard, FIG. 8 provides an example where NVSM 128 includes more than tworeserved portions and a circular buffer. As shown in FIG. 8, NVSM 128includes first portion 44, second portion 46, and other reservedportions up to an Nth portion 50. The additional portions of NVSM 128can be reserved to store surveillance data from buffer 30 if input 20indicates a subsequent impact following a first impact.

In one implementation, upon determining that input 20 exceeds the firstthreshold, surveillance data is stored in first portion 44 from buffer30. A predetermined amount of new surveillance data following thedetermination that input 20 exceeded the first threshold can be storedin second portion 46 as in the example of FIG. 7. New surveillance datareceived after first portion 44 and second portion 46 have been filledcan be stored in circular buffer 48 as in FIG. 7. However, unlike theexample of FIG. 7, if a subsequent input 20 indicates a new level ofmechanical shock exceeding the first threshold, surveillance data frombuffer 30 is stored in an additional reserved portion such as Nthportion 50. This can ordinarily allow for surveillance data capturedaround the time of a later impact to be preserved in NVSM 128, which asdiscussed above, may be helpful in preserve data in accidents involvingmultiple impacts. Additional reserved portions in NVSM 128 can alsoallow for preserving surveillance data for additional impacts thatfollow a predetermined amount of time after the first impact.

In yet another implementation, second portion 46 may not be used tostore a predetermined amount of surveillance data after a first impact.Instead, second portion 46 may be reserved to store surveillance dataaround the time of a second impact such that the reserved portions ofNVSM 128 only store surveillance data from around the time of impactsand all non-impact related surveillance data is stored in circularbuffer 48.

Other implementations of NVSM 128 are also possible. For example, NVSM128 may only include a single reserved portion for preserving dataaround the time of a first impact and with the rest of NVSM 128 servingas a circular buffer for recording surveillance data following the firstimpact.

Returning to the data storage process of FIG. 5, controller 120 in block512 receives new surveillance data and stores it in second portion 46 ofNVSM 128. After second portion 46 becomes full, new surveillance data isstored in circular buffer 48.

In block 514, controller 120 determines a status for storingsurveillance data on disk 150. This may be accomplished by performing adiagnostic test on disk 150, such as attempting to write test data ondisk 150 and then attempting to read the test data. In such animplementation, if the test data is successfully written and read,controller 120 determines in block 514 that surveillance data can bestored on disk 150.

If the status in block 514 indicates that disk 150 can storesurveillance data, controller 120 in block 516 copies to disk 150surveillance data stored in first portion 44 and second portion 46 ofNVSM 128. The surveillance data copied from first portion 44 and secondportion 46 may remain in NVSM 128 as a backup copy of surveillance datapertaining to a high shock level event. In some embodiments, this datamay be retrieved by host surveillance unit 103 and sent to remotestorage device 109 via network 105.

Circular buffer 48 is also flushed to disk 150 in block 516. In thisregard, data stored in circular buffer 48 is migrated to disk 150 andthe data stored in circular buffer 48 is then erased or marked asinvalid. The process of FIG. 5 then returns to block 502 to continue toreceive surveillance data in buffer 30 for storage on disk 150.

On the other hand, if it is determined that the status in block 514indicates that disk 150 cannot store surveillance data, controller 120in block 518 shuts down operation of disk 150. This can include movinghead 136 away from disk 150 and spinning disk 150 down to stop itsrotation.

In block 520, controller 120 can determine an additional status forstoring surveillance data on disk 150. This check can be performed tosee if a temporary condition preventing storage of data on disk 150 hasimproved so that data can again be stored on disk 150. Controller 150 inblock 520 may perform a diagnostic test on disk 150 which can involveattempting to spin up disk 150 to an operational speed and attempting towrite and read test data on disk 150. If the additional status indicatesthat disk 150 can store surveillance data, the process proceeds to block516 to copy surveillance data stored in first portion 44 and secondportion 46 of NVSM 128 and to flush surveillance data stored in circularbuffer 48 to disk 150.

If the additional status in block 520 indicates that disk 150 cannotstore surveillance data, the process proceeds to block 522 to continueto store new surveillance data in circular buffer 48 and the process ofFIG. 5 ends. In other embodiments, controller 120 may check the statusof disk 150 for storing data more than one additional time. For example,controller 120 may periodically check the status of disk 150 during apredetermined amount of time following the initial determination inblock 514 that disk 150 cannot store data.

As discussed above, by storing data from buffer 30 in NVSM 128 upondetermining that there is a high level of mechanical shock, it isordinarily possible to preserve data that may have otherwise been lostin attempting to write the data on disk 150.

Other Embodiments

Those of ordinary skill in the art will appreciate that the variousillustrative logical blocks, modules, and processes described inconnection with the examples disclosed herein may be implemented aselectronic hardware, computer software, or combinations of both.Furthermore, the foregoing processes can be embodied on a computerreadable medium which causes a processor or computer to perform orexecute certain functions.

To clearly illustrate this interchangeability of hardware and software,various illustrative components, blocks, and modules have been describedabove generally in terms of their functionality. Whether suchfunctionality is implemented as hardware or software depends upon theparticular application and design constraints imposed on the overallsystem. Those of ordinary skill in the art may implement the describedfunctionality in varying ways for each particular application, but suchimplementation decisions should not be interpreted as causing adeparture from the scope of the present disclosure.

The various illustrative logical blocks, units, modules, and controllersdescribed in connection with the examples disclosed herein may beimplemented or performed with a general purpose processor, a digitalsignal processor (DSP), an application specific integrated circuit(ASIC), a field programmable gate array (FPGA) or other programmablelogic device, discrete gate or transistor logic, discrete hardwarecomponents, or any combination thereof designed to perform the functionsdescribed herein. A general purpose processor may be a microprocessor,but in the alternative, the processor may be any conventional processor,controller, microcontroller, or state machine. A processor may also beimplemented as a combination of computing devices, e.g., a combinationof a DSP and a microprocessor, a plurality of microprocessors, one ormore microprocessors in conjunction with a DSP core, or any other suchconfiguration.

The activities of a method or process described in connection with theexamples disclosed herein may be embodied directly in hardware, in asoftware module executed by a processor, or in a combination of the two.The steps of the method or algorithm may also be performed in analternate order from those provided in the examples. A software modulemay reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROMmemory, registers, hard disk, a removable media, an optical media, orany other form of storage medium known in the art. An exemplary storagemedium is coupled to the processor such that the processor can readinformation from, and write information to, the storage medium. In thealternative, the storage medium may be integral to the processor. Theprocessor and the storage medium may reside in an Application SpecificIntegrated Circuit (ASIC).

The foregoing description of the disclosed example embodiments isprovided to enable any person of ordinary skill in the art to make oruse the embodiments in the present disclosure. Various modifications tothese examples will be readily apparent to those of ordinary skill inthe art, and the principles disclosed herein may be applied to otherexamples without departing from the spirit or scope of the presentdisclosure. The described embodiments are to be considered in allrespects only as illustrative and not restrictive and the scope of thedisclosure is, therefore, indicated by the following claims rather thanby the foregoing description. All changes which come within the meaningand range of equivalency of the claims are to be embraced within theirscope.

What is claimed is:
 1. A device adapted to capture surveillance data,the device comprising: a disk for storing surveillance data; aNon-Volatile Solid-State Memory (NVSM) for storing surveillance data; amemory including a buffer for storing surveillance data before writingthe surveillance data on the disk; and a controller configured to:receive surveillance data into the buffer for storage on the disk;receive an input indicating a level of mechanical shock; determinewhether the input indicates the level of mechanical shock exceeds afirst threshold indicative of an impact; and if the input indicates thelevel of mechanical shock exceeds the first threshold: storesurveillance data from the buffer in the NVSM; and determine a statusfor storing surveillance data on the disk.
 2. The device of claim 1,wherein the controller is further configured to determine an additionalstatus for storing surveillance data on the disk if the status forstoring surveillance data on the disk previously indicated thatsurveillance data could not be stored on the disk.
 3. The device ofclaim 1, wherein in determining the status for storing surveillance dataon the disk, the controller is further configured to perform adiagnostic test on the disk.
 4. The device of claim 1, wherein thecontroller includes a shock signal amplifier, and wherein the controlleris further configured to: process the input into a first shock signalused by the controller to determine whether the input indicates thelevel of mechanical shock exceeds the first threshold; process the firstshock signal into a second shock signal using the shock signalamplifier; and determine based on the second shock signal whether theinput indicates the level of mechanical shock exceeds a secondthreshold, the second threshold corresponding to less mechanical shockthan the first threshold.
 5. The device of claim 1, wherein the NVSMincludes a first portion reserved for storing surveillance data from thebuffer upon determining that the input indicates the level of mechanicalshock exceeds the first threshold indicative of an impact.
 6. The deviceof claim 5, wherein the NVSM includes a second portion reserved forstoring a predetermined amount of new surveillance data received by thecontroller for storage in the device after determining that the inputindicates the level of mechanical shock exceeds the first threshold. 7.The device of claim 5, wherein the NVSM includes a third portion, andwherein the controller is further configured to: receive newsurveillance data into the buffer for storage in the device afterdetermining that the input indicates the level of mechanical shockexceeds the first threshold; receive an additional input indicating asubsequent level of mechanical shock; determine whether the additionalinput indicates the subsequent level of mechanical shock corresponds toan additional impact; and store the new surveillance data from thebuffer in the third portion of the NVSM if the additional inputindicates the subsequent level of mechanical shock corresponds to anadditional impact, wherein the third portion of the NVSM is reserved forstoring a predetermined amount of the new surveillance data from thebuffer.
 8. The device of claim 1, wherein the NVSM includes a circularbuffer, and wherein the controller is further configured to: receive newsurveillance data for storage in the device after determining that theinput indicates the level of mechanical shock exceeds the firstthreshold; and store the new surveillance data in the circular buffer.9. The device of claim 1, wherein the buffer includes a first portionand a second portion, and wherein the controller is further configuredto receive surveillance data into the first portion of the buffer forstorage on the disk while storing surveillance data on the disk that waspreviously received in the second portion of the buffer.
 10. The deviceof claim 1, further comprising a host in communication with a remotestorage device via a network, and wherein the host is configured to:retrieve surveillance data stored in the NVSM; and send the retrievedsurveillance data to the remote storage device via the network.
 11. Amethod of operating a device adapted to capture surveillance data, thedevice including a disk and a Non-Volatile Solid-State Memory (NVSM) forstoring surveillance data, the method comprising: receiving surveillancedata into a buffer of the device for storage on the disk; receiving aninput indicating a level of mechanical shock; determining whether theinput indicates the level of mechanical shock exceeds a first thresholdindicative of an impact; and in response to determining that the inputindicates the level of mechanical shock exceeds the first threshold:storing surveillance data from the buffer in the NVSM; and determining astatus for storing surveillance data on the disk.
 12. The method ofclaim 11, further comprising determining an additional status forstoring surveillance data on the disk in response to determining thatthe status for storing surveillance data on the disk previouslyindicated that surveillance data could not be stored on the disk. 13.The method of claim 11, wherein in determining the status for storingsurveillance data on the disk, the method further comprises performing adiagnostic test on the disk.
 14. The method of claim 11, furthercomprising: processing the input into a first shock signal used todetermine whether the input indicates the level of mechanical shockexceeds the first threshold; processing the first shock signal into asecond shock signal using a shock signal amplifier; and determiningbased on the second shock signal whether the input indicates the levelof mechanical shock exceeds a second threshold, the second thresholdcorresponding to less mechanical shock than the first threshold.
 15. Themethod of claim 11, further comprising storing surveillance data fromthe buffer in a reserved first portion of the NVSM in response todetermining that the input indicates the level of mechanical shockexceeds the first threshold indicative of an impact.
 16. The method ofclaim 15, further comprising: receiving a predetermined amount of newsurveillance data for storage in the device after determining that theinput indicates the level of mechanical shock exceeds the firstthreshold; and storing the predetermined amount of new surveillance datain a reserved second portion of the NVSM.
 17. The method of claim 15,further comprising: receiving new surveillance data into the buffer forstorage in the device after determining that the input indicates thelevel of mechanical shock exceeds the first threshold; receiving anadditional input indicating a subsequent level of mechanical shock;determining whether the additional input indicates the subsequent levelof mechanical shock corresponds to an additional impact; and in responseto determining that the additional input indicates the subsequent levelof mechanical shock corresponds to an additional impact, storing the newsurveillance data from the buffer in a third portion of the NVSM,wherein the third portion of the NVSM is reserved for storing apredetermined amount of the new surveillance data from the buffer. 18.The method of claim 11, further comprising: receiving new surveillancedata for storage in the device after determining that the inputindicates the level of mechanical shock exceeds the first threshold; andstoring the new surveillance data in a circular buffer of the NVSM. 19.The method of claim 11, further comprising receiving surveillance datainto a first portion of the buffer for storage on the disk while storingsurveillance data on the disk that was previously received in a secondportion of the buffer.
 20. The method of claim 11, further comprising:retrieving surveillance data stored in the NVSM; and sending theretrieved surveillance data to a remote storage device via a network.21. A computer readable medium storing computer-executable instructionsfor operating a device adapted to capture surveillance data, the deviceincluding a disk and a Non-Volatile Solid-State Memory (NVSM) forstoring surveillance data, wherein when the computer-executableinstructions are executed by a controller of the device, thecomputer-executable instruction cause the controller to: receivesurveillance data into a buffer of the device for storage on the disk;receive an input indicating a level of mechanical shock; determinewhether the input indicates the level of mechanical shock exceeds afirst threshold indicative of an impact; and in response to determiningthat the input indicates the level of mechanical shock exceeds the firstthreshold: store surveillance data from the buffer in the NVSM; anddetermine a status for storing surveillance data on the disk.